Wait for API pod to be healthy before registering control plane node in instance group#1533
Wait for API pod to be healthy before registering control plane node in instance group#1533bochengchu wants to merge 1 commit into
Conversation
✅ Deploy Preview for kubernetes-sigs-cluster-api-gcp ready!
To edit notification comments on pull requests, go to your Netlify project configuration. |
|
[APPROVALNOTIFIER] This PR is NOT APPROVED This pull-request has been approved by: bochengchu The full list of commands accepted by this bot can be found here. DetailsNeeds approval from an approver in each of these files:Approvers can indicate their approval by writing |
|
Hi @bochengchu. Thanks for your PR. I'm waiting for a kubernetes-sigs member to verify that this patch is reasonable to test. If it is, they should reply with Once the patch is verified, the new status will be reflected by the I understand the commands that are listed here. DetailsInstructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes-sigs/prow repository. |
3ad69fa to
1c24d1f
Compare
| return err | ||
| } | ||
| } else { | ||
| log.V(2).Info("[DEBUG] Skipping registering control plane instance in the instancegroup because machine is not yet provisioned", "name", instance.Name) |
There was a problem hiding this comment.
Some comments with more background on the problem would be helpful for our future selves I think!
| Watches( | ||
| &clusterv1.Machine{}, | ||
| handler.EnqueueRequestsFromMapFunc(util.MachineToInfrastructureMapFunc(infrav1.GroupVersion.WithKind("GCPMachine"))), | ||
| builder.WithPredicates(predicate.Funcs{ |
There was a problem hiding this comment.
I don't think this is necessary?
|
|
||
| if err := instances.New(machineScope).Reconcile(ctx); err != nil { | ||
| instancesSvc := instances.New(machineScope) | ||
| if err := instancesSvc.Reconcile(ctx); err != nil { |
There was a problem hiding this comment.
Similarly I don't think this is important to this PR.
|
Nice catch @bochengchu - I think having a test showing the problem would be awesome (I guess in another PR, and we can figure out the sequencing of merging it). And some comments on the critical line when we don't add the new control plane node until it is ready would be helpful for others looking to understand the code / the issue. /ok-to-test |
| return false | ||
| } | ||
| for _, condition := range m.Machine.Status.V1Beta2.Conditions { | ||
| if condition.Type == "APIServerPodHealthy" && condition.Status == "True" { |
There was a problem hiding this comment.
I think we should look for APIServerPodHealthy to be True here, but this is a v1beta2 condition and v1beta2 seems not yet fully migrated to in this repo, so I hardcoded here. Maybe we can have follow-up work to bring in v1beta2 and update this there?
salasberryfin
left a comment
There was a problem hiding this comment.
Thanks @bochengchu. Can you please add a release note in the PR description?
|
@salasberryfin I see @bochengchu added the note. |
|
/ok-to-test |
|
/test pull-cluster-api-provider-gcp-build |
|
/test pull-cluster-api-provider-gcp-build pull-cluster-api-provider-gcp-e2e-test pull-cluster-api-provider-gcp-make pull-cluster-api-provider-gcp-test |
|
I think the PR needs rebasing @bochengchu |
|
/test ? |
|
/test pull-cluster-api-provider-gcp-conformance /test pull-cluster-api-provider-gcp-capi-e2e |
|
|
||
| // List all machines in the cluster to check if this is the first one. | ||
| machineList := &clusterv1.MachineList{} | ||
| if err := r.List(ctx, machineList, client.InNamespace(cluster.Namespace), client.MatchingLabels{clusterv1.ClusterNameLabel: cluster.Name}); err != nil { |
There was a problem hiding this comment.
If you create the KCP and MachineDeployment at the same time, it won’t work as expected. You should add a filter to select only control plane machines.
/kind bug
What this PR does / why we need it:
Fixes #1407
Which issue(s) this PR fixes (optional, in
fixes #<issue number>(, fixes #<issue_number>, ...)format, will close the issue(s) when PR gets merged):Fixes #
Special notes for your reviewer:
Please confirm that if this PR changes any image versions, then that's the sole change this PR makes.
TODOs:
Release note: